#include<bits/stdc++.h>
using namespace std;
const int N=1000001;

int n,m;
vector<int> edges[N];
int res[N];
bool visit[N];
bool visit1[N];
int mod=100003;

int main()
{
    scanf("%d%d",&n,&m);
    //int ans1=0;
    for(int i=0;i<m;i++)
    {
        int s,t;
        scanf("%d%d",&s,&t);
        if(s==t) continue;
        edges[s].emplace_back(t);
        edges[t].emplace_back(s);
    }

    //
    memset(res,0,sizeof(res));
    memset(visit,0,sizeof(visit));
    res[1]=1;
    visit[1]=true;
    queue<int> que;
    que.push(1);
    while(!que.empty())
    {
        memset(visit1,0,sizeof(visit1));
        vector<int> quc;
        int size=que.size();
        for(int i=0;i<size;i++){
            int s=que.front();
            que.pop();
            for(auto t:edges[s]){
                if(visit[t]) continue;
                res[t]+=res[s];
                res[t]%=mod;
                if(!visit1[t]){
                    visit1[t]=true;
                    quc.emplace_back(t);
                }
            }
        }
        for(auto num:quc){
            visit[num]=true;
            que.push(num);
        }
    }
    for(int i=1;i<=n;i++){
        printf("%d\n",res[i]);
    }
    return 0;
}